﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using log4net;
using TSComm.Utilities.Datas;

namespace JSTTLogger
{
    public static class Logger
    {
       
        private static ILog jstt_recvLog;

     
        private static ILog jstt_procLog;

       
        private static ILog jstt_Log;

        static Logger()
        {
            // Log4net.config对其进行详细配置
            // jstt_recvLog : log\jstt_log_recv_yyddmm.log
            // jstt_procLog : log\jstt_log_proc_yyddmm.log
            // jstt_Log : log\jstt_log.log, 全部信息都会记录.
            jstt_recvLog = log4net.LogManager.GetLogger("JSTT.Recv.Logging");
            jstt_procLog = log4net.LogManager.GetLogger("JSTT.Proc.Logging");
            jstt_Log = log4net.LogManager.GetLogger("JSTT.Logging");
        }
        
        /// <summary>
        /// 针对TCP数据接收的数据记录，只记录数据，每天生成一个LOG文件,记录在：jstt_log_recv_20150504.log
        /// 此函数暂时不用
        /// </summary>
        /// <param name="message"></param>
        public static void RecvInfoLogger(string message)
        {
            if (jstt_recvLog.IsInfoEnabled)
            {
                jstt_recvLog.Info(message);
            }
        }

        /// <summary>
        /// 由TCP数据模块接收数据后进行的LOG记录,每天生成一个LOG文件,记录在：jstt_log_recv_20150504.log
        /// </summary>
        /// <param name="datas"></param>
        public static void RecvSocketDataLogger(byte[] datas, string ipaddress = "", string port = "0")
        {
            if (jstt_recvLog.IsInfoEnabled)
            {
                jstt_recvLog.Info(string.Format("Recive Data,from ipaddress:{0}:{1} : {2}", ipaddress, port, datas.ToBSDString()));
            }
        }

        /// <summary>
        /// 应用程序中的数据处理模块记录信息,每天生成一个LOG文件,记录在：jstt_log_proc_20150626.log
        /// </summary>
        /// <param name="message"></param>
        public static void ProcInfoLogger(string message)
        {
            if(jstt_procLog.IsInfoEnabled)
                jstt_procLog.Info(message);
        }

        /// <summary>
        /// 警告信息,每天生成一个LOG文件,记录在：jstt_log_proc_20150626.log
        /// </summary>
        /// <param name="message"></param>
        public static void ProcWarnLogger(string message)
        {
            if (jstt_procLog.IsWarnEnabled)
                jstt_procLog.Warn(message);
        }
    }
}
